home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 12192 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.8 KB

  1. Path: linus.mitre.org!spectre!eachus
  2. From: eachus@spectre.mitre.org (Robert I. Eachus)
  3. Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++
  4. Subject: Ada Parsing Tools (was Re: C/C++ knocks the crap out of Ada)
  5. Date: 18 Mar 1996 19:17:25 GMT
  6. Organization: The Mitre Corp., Bedford, MA.
  7. Message-ID: <EACHUS.96Mar18141725@spectre.mitre.org>
  8. References: <00001a73+00002504@msn.com> <4iah20$p7k@saba.info.ucla.edu>
  9.     <4ica32INN5hn@gambier.ugrad.cs.ubc.ca> <4icja9$1r92@saba.info.ucla.edu>
  10.     <4idh80$6tj@solutions.solon.com>
  11. NNTP-Posting-Host: spectre.mitre.org
  12. In-reply-to: seebs@solutions.solon.com's message of 15 Mar 1996 22:49:04 -0600
  13.  
  14.  
  15.     First Alex and Ayacc exist, and allow you to use lex and yacc
  16. grammars in Ada.
  17.  
  18.     Second, yacc is the worst product I have ever used to build LALR
  19. parsers.  It works, and it does what it says it does. (Although there
  20. are cases where it does not correctly handle LALR1 grammars, don't get
  21. me started.)  However, it is woefully inadequate as a tool for
  22. designing grammars.  All the other tools I have used for building
  23. grammars and parsers have had at least the following properties:
  24.  
  25.     1) Support either full LR(1), LALR(k), LR(k) or even implement
  26. Early's Algorithm.
  27.  
  28.     2) Lots of built-in support for error messages and error recovery
  29. in the final product.
  30.  
  31.     3) Lost of built-in diagnostics so that grammar errors--or grammar
  32. forms not supported by the tool--can be diagnosed and fixed.
  33.  
  34.     Yacc is a least common denominator product, however it is not
  35. currently the state of the (1980) art.
  36.  
  37.     (Robert Dewar has built a very nice custom/recursive descent
  38. parser for GNAT, but not everyone can do that...)
  39.  
  40. --
  41.  
  42.                     Robert I. Eachus
  43.  
  44. with Standard_Disclaimer;
  45. use  Standard_Disclaimer;
  46. function Message (Text: in Clever_Ideas) return Better_Ideas is...
  47.